package mqtt

import "time"

/*5G室内定位系统->M2M*/

//AttributeDataReport 5G室内定位系统上报标签实时位置数据 .
type AttributeDataReport struct {
	MessageId   string `json:"messageId"`
	MessageName string `json:"messageName"`
	ThingId     string `json:"thingId"`
	MachineSn   string `json:"machineSn"`
	SiteId      int    `json:"siteId"`
	ReportTime  int64  `json:"reportTime"`
	ItemList    struct {
		X      string `json:"x"`
		Y      string `json:"y"`
		MapID  string `json:"mapId"`
		AreaID string `json:"areaId"`
		Power  string `json:"power"`
		Sleep  string `json:"sleep"`
	} `json:"itemList"`
}

// TagAreaChangedReport 5G室内定位系统上报标签区域变化数据 .
type TagAreaChangedReport struct {
	MessageId   string `json:"messageId"`
	MessageName string `json:"messageName"`
	ThingId     string `json:"thingId"`
	MachineSn   string `json:"machineSn"`
	SiteId      int    `json:"siteId"`
	ReportTime  int64  `json:"reportTime"`
	// ChangedAreaType: AreaIn/InAreaOut/MapIn/MapOut
	ChangedAreaType string `json:"newAreaType"`
	// 地图用map name， 围栏用fenche id
	AreaId string `json:"areaId"`
}

// AlarmReport 室内定位系统向M2M反馈告警信息 .
type AlarmReport struct {
	MessageId   string `json:"messageId"`
	MessageName string `json:"messageName"`
	ThingId     string `json:"thingId"`
	MachineSn   string `json:"machineSn"`
	SiteId      int    `json:"siteId"`
	ReportTime  int64  `json:"reportTime"`
	AlarmCode   string `json:"alarmCode"`
	AlarmLevel  string `json:"alarmLevel"`
	AlarmState  string `json:"alarmState"`
	AlarmText   string `json:"alarmText"`
	ReasonCode  string `json:"reasonCode"`
	UserId      string `json:"userId"`
}

// TerminalCmdReply --> TerminalCmdRequest 室内定位系统收到M2M下发信息之后，下发给手环，并答复给M2M .
type TerminalCmdReply struct {
	MessageId       string `json:"messageId"`
	MessageName     string `json:"messageName"`
	ThingId         string `json:"thingId"`
	MachineSn       string `json:"machineSn"`
	SiteId          int    `json:"siteId"`
	ReportTime      int64  `json:"reportTime"`
	Acknowledge     string `json:"acknowledge"`
	AcknowledgeText string `json:"acknowledgeText"`
	UserId          string `json:"userId"`
}

/*M2M->5G室内定位系统*/

// TerminalCmdRequest --> TerminalCmdReply 安灯异常之后推送异常信息给M2M，M2M将消息内容转换成MQTT，发给5G室内定位系统发送告警信息.
type TerminalCmdRequest struct {
	MessageId   string `json:"messageId"`
	MessageName string `json:"messageName"`
	ThingId     string `json:"thingId"`
	MachineSn   string `json:"machineSn"`
	SiteId      int    `json:"siteId"`
	ReportTime  int64  `json:"reportTime"`
	MessageType string `json:"messageType"`
	MessageText string `json:"messageText"`
}

/*5G室内定位系统数据格式*/

// TagPositionInfo .
type TagPositionInfo struct {
	MapID           int       `json:"map_id"`
	MapName         string    `json:"map_name"`
	TagAddr         string    `json:"tag_addr"`
	ReportAt        time.Time `json:"report_at"`
	TagX            float64   `json:"x"`
	TagY            float64   `json:"y"`
	TagBusinessType string    `json:"tag_business_type"`
}
